package com.mock.dao;

import java.io.Serializable;
import java.util.List;

import com.mock.model.Organisation;


public interface GenericDao<T , PK extends Serializable> {
	
	
	T add(T newInstance);
	
	T getById(Class<T> T, PK id);
	
	T update(T transientObject);
	
	void delete(T persistentObject);
	
	List<T> getAll(Class<T> T);
	
	int getRowCount(Class<T> T);
	
	T getByColumn(Class<T> T, String columnName, String valueSearch);
	
	List<T> getListByColumn (Class<T> T, String columnName, String valueSearch);
	
	List<Long> getOrganisationDetailsTwoByOrganisation(Organisation organisation, Class<T> T, String alias);
	
}
